<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ForwardingConfig" targetNamespace="http://myspace.com/ForwardingConfig.xsd" elementFormDefault="qualified" xmlns="http://myspace.com/ForwardingConfig.xsd" xmlns:mstns="http://myspace.com/ForwardingConfig.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ForwardingConfig">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="QueueConfig" nillable="true" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Enabled" type="xs:boolean" nillable="true" minOccurs="0" maxOccurs="1"/>
              <xs:element name="MaxCount" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1" />
              <xs:element name="ItemsPerDequeue" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1"/>
              <xs:element name="DequeueIntervalSeconds" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1"/>
              <xs:element name="MaxQueuePolicy" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1" />
              <xs:element name="PersistenceFolder" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1" />
              <xs:element name="PersistenceFileSize" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1" />
              <xs:element name="MaxPersistedMB" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="MessageChunkLength" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="NumberOfThreads" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="NumberOfOutMessageThreads" type="xs:int"  nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="MessageBurstLength" type="xs:int" nillable="true" minOccurs="0" maxOccurs="1" />        
        <xs:element name="MessageBurstTimeout" type="xs:int"  nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="MaximumTaskQueueDepth" type="xs:int"  nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="EnableAsyncBulkGets" type="xs:boolean"  nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="RepostMessageLists" type="xs:boolean"  nillable="true" minOccurs="0" maxOccurs="1"/>		    
		    <xs:element name="WriteMessageTrace" type="xs:boolean"  nillable="true" minOccurs="0" maxOccurs="1"/>
		    <xs:element name="WriteCallingMethod" type="xs:boolean"  nillable="true" minOccurs="0" maxOccurs="1"/>
        <xs:element name="TraceSettings" minOccurs="0" maxOccurs="1" nillable="true">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="WriteToDiagnostic" type="xs:boolean" minOccurs="0" maxOccurs="1" nillable="true" default="true"/>
              <xs:element name="TraceFilename" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/>
              <xs:element name="SampleSeconds" type="xs:int" minOccurs="0" maxOccurs="1" nillable="true"/>
              <xs:element name="TracedMessageTypes" minOccurs="0" maxOccurs="1" nillable="true">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="MessageType" type="MessageType" minOccurs="0" maxOccurs="unbounded" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="TracedMessageTypeIds" minOccurs="0" maxOccurs="1" nillable="true">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="MessageTypeId" type="xs:short" minOccurs="0" maxOccurs="unbounded" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="DecodeExtendedIdTypeIds" minOccurs="0" maxOccurs="1" nillable="true">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="MessageTypeId" type="xs:short" minOccurs="0" maxOccurs="unbounded" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="MessageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Get" />
      <xs:enumeration value="Save" />
      <xs:enumeration value="Delete" />
      <xs:enumeration value="DeleteInAllTypes" />
      <xs:enumeration value="DeleteAllInType" />
      <xs:enumeration value="Update" />
      <xs:enumeration value="Query" />
      <xs:enumeration value="Invoke" />
      <xs:enumeration value="Notification"/>
      <xs:enumeration value="Increment"/>
      <xs:enumeration value="SaveWithConfirm"/>
      <xs:enumeration value="UpdateWithConfirm"/>
      <xs:enumeration value="DeleteWithConfirm"/>
      <xs:enumeration value="DeleteAllInTypeWithConfirm"/>
      <xs:enumeration value="DeleteAllWithConfirm"/>
      <xs:enumeration value="DeleteInAllTypesWithConfirm"/>
      <xs:enumeration value="NotificationWithConfirm"/>
      <xs:enumeration value="IncrementWithConfirm"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>